package sv.gob.mh.dgii.model;

// Generated Dec 12, 2007 1:25:05 PM by Hibernate Tools 3.2.0.CR1

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * DvMedioDevol generated by hbm2java
 */
@Entity
@Table(name = "DV_MEDIO_DEVOL", schema = "DEVOLUCIONES")
public class DvMedioDevol implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2571417586375397666L;
	private Long ncorrelativo;
	private TbTipoCuenta tbTipoCuenta;
	private DvColectivo dvColectivo;
	private DvAutorizacionDevRenta dvAutorizacionDevRenta;
	private DvEmision dvEmision;
	private String cmoneda;
	private Long iindice;
	private String cestado;
	private Long ncheqDeposito;
	private Date fhemision;
	private Double vmonto;
	private String cusuario;
	private Date fhingreso;
	private String mtipoMedio;
	private String nit;
	private String fafiscal;
	private String cunidadRecep;
	private String ncuentaDev;
	private Long ncolectivo;
	private Long ncontrolForma;
	private Set<DvDevolAnula> dvDevolAnulas = new HashSet<DvDevolAnula>(0);
	private Set<DvDevTesoreri> dvDevTesoreris = new HashSet<DvDevTesoreri>(0);

	public DvMedioDevol() {
	}

	public DvMedioDevol(Long ncorrelativo, DvEmision dvEmision, Long iindice, String cestado,
			Date fhemision, Double vmonto, String cusuario, Date fhingreso, String nit,
			String fafiscal) {
		this.ncorrelativo = ncorrelativo;
		this.dvEmision = dvEmision;
		this.iindice = iindice;
		this.cestado = cestado;
		this.fhemision = fhemision;
		this.vmonto = vmonto;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.nit = nit;
		this.fafiscal = fafiscal;
	}

	public DvMedioDevol(Long ncorrelativo, TbTipoCuenta tbTipoCuenta, DvColectivo dvColectivo,
			DvAutorizacionDevRenta dvAutorizacionDevRenta, DvEmision dvEmision, String cmoneda,
			Long iindice, String cestado, Long ncheqDeposito, Date fhemision, Double vmonto,
			String cusuario, Date fhingreso, String mtipoMedio, String nit, String fafiscal,
			String cunidadRecep, String ncuentaDev, Long ncolectivo, Long ncontrolForma,
			Set<DvDevolAnula> dvDevolAnulas, Set<DvDevTesoreri> dvDevTesoreris) {
		this.ncorrelativo = ncorrelativo;
		this.tbTipoCuenta = tbTipoCuenta;
		this.dvColectivo = dvColectivo;
		this.dvAutorizacionDevRenta = dvAutorizacionDevRenta;
		this.dvEmision = dvEmision;
		this.cmoneda = cmoneda;
		this.iindice = iindice;
		this.cestado = cestado;
		this.ncheqDeposito = ncheqDeposito;
		this.fhemision = fhemision;
		this.vmonto = vmonto;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.mtipoMedio = mtipoMedio;
		this.nit = nit;
		this.fafiscal = fafiscal;
		this.cunidadRecep = cunidadRecep;
		this.ncuentaDev = ncuentaDev;
		this.ncolectivo = ncolectivo;
		this.ncontrolForma = ncontrolForma;
		this.dvDevolAnulas = dvDevolAnulas;
		this.dvDevTesoreris = dvDevTesoreris;
	}

	@Id
	@Column(name = "N_CORRELATIVO", unique = true, nullable = false, precision = 10, scale = 0)
	public Long getNcorrelativo() {
		return this.ncorrelativo;
	}

	public void setNcorrelativo(Long ncorrelativo) {
		this.ncorrelativo = ncorrelativo;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_TIPO_CUENTA")
	public TbTipoCuenta getTbTipoCuenta() {
		return this.tbTipoCuenta;
	}

	public void setTbTipoCuenta(TbTipoCuenta tbTipoCuenta) {
		this.tbTipoCuenta = tbTipoCuenta;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns( { @JoinColumn(name = "C_DEPARTAMENTO", referencedColumnName = "C_DEPARTAMENTO"),
			@JoinColumn(name = "FA_COLECTIVO", referencedColumnName = "FA_COLECTIVO") })
	public DvColectivo getDvColectivo() {
		return this.dvColectivo;
	}

	public void setDvColectivo(DvColectivo dvColectivo) {
		this.dvColectivo = dvColectivo;
	}

	/**
	 * @return the dvAutorizacionDevRenta
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "N_AUTORIZACION", nullable = true)
	public DvAutorizacionDevRenta getDvAutorizacionDevRenta() {
		return dvAutorizacionDevRenta;
	}

	/**
	 * @param dvAutorizacionDevRenta
	 *            the dvAutorizacionDevRenta to set
	 */
	public void setDvAutorizacionDevRenta(DvAutorizacionDevRenta dvAutorizacionDevRenta) {
		this.dvAutorizacionDevRenta = dvAutorizacionDevRenta;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "N_EMISION", nullable = false)
	public DvEmision getDvEmision() {
		return this.dvEmision;
	}

	public void setDvEmision(DvEmision dvEmision) {
		this.dvEmision = dvEmision;
	}

	@Column(name = "C_MONEDA", length = 2)
	public String getCmoneda() {
		return this.cmoneda;
	}

	public void setCmoneda(String cmoneda) {
		this.cmoneda = cmoneda;
	}

	@Column(name = "I_INDICE", nullable = false, precision = 18, scale = 0)
	public Long getIindice() {
		return this.iindice;
	}

	public void setIindice(Long iindice) {
		this.iindice = iindice;
	}

	@Column(name = "C_ESTADO", nullable = false, length = 1)
	public String getCestado() {
		return this.cestado;
	}

	public void setCestado(String cestado) {
		this.cestado = cestado;
	}

	@Column(name = "N_CHEQ_DEPOSITO", precision = 10, scale = 0)
	public Long getNcheqDeposito() {
		return this.ncheqDeposito;
	}

	public void setNcheqDeposito(Long ncheqDeposito) {
		this.ncheqDeposito = ncheqDeposito;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FH_EMISION", nullable = false, length = 7)
	public Date getFhemision() {
		return this.fhemision;
	}

	public void setFhemision(Date fhemision) {
		this.fhemision = fhemision;
	}

	@Column(name = "V_MONTO", nullable = false, precision = 11)
	public Double getVmonto() {
		return this.vmonto;
	}

	public void setVmonto(Double vmonto) {
		this.vmonto = vmonto;
	}

	@Column(name = "C_USUARIO", nullable = false, length = 30)
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", nullable = false, length = 7)
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@Column(name = "M_TIPO_MEDIO", length = 1)
	public String getMtipoMedio() {
		return this.mtipoMedio;
	}

	public void setMtipoMedio(String mtipoMedio) {
		this.mtipoMedio = mtipoMedio;
	}

	@Column(name = "NIT", nullable = false, length = 14)
	public String getNit() {
		return this.nit;
	}

	public void setNit(String nit) {
		this.nit = nit;
	}

	@Column(name = "FA_FISCAL", nullable = false, length = 4)
	public String getFafiscal() {
		return this.fafiscal;
	}

	public void setFafiscal(String fafiscal) {
		this.fafiscal = fafiscal;
	}

	@Column(name = "C_UNIDAD_RECEP", length = 5)
	public String getCunidadRecep() {
		return this.cunidadRecep;
	}

	public void setCunidadRecep(String cunidadRecep) {
		this.cunidadRecep = cunidadRecep;
	}

	@Column(name = "N_CUENTA_DEV", length = 25)
	public String getNcuentaDev() {
		return this.ncuentaDev;
	}

	public void setNcuentaDev(String ncuentaDev) {
		this.ncuentaDev = ncuentaDev;
	}

	@Column(name = "N_COLECTIVO", precision = 10, scale = 0)
	public Long getNcolectivo() {
		return this.ncolectivo;
	}

	public void setNcolectivo(Long ncolectivo) {
		this.ncolectivo = ncolectivo;
	}

	@Column(name = "N_CONTROL_FORMA", precision = 10, scale = 0)
	public Long getNcontrolForma() {
		return this.ncontrolForma;
	}

	public void setNcontrolForma(Long ncontrolForma) {
		this.ncontrolForma = ncontrolForma;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "dvMedioDevol")
	public Set<DvDevolAnula> getDvDevolAnulas() {
		return this.dvDevolAnulas;
	}

	public void setDvDevolAnulas(Set<DvDevolAnula> dvDevolAnulas) {
		this.dvDevolAnulas = dvDevolAnulas;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "dvMedioDevol")
	public Set<DvDevTesoreri> getDvDevTesoreris() {
		return this.dvDevTesoreris;
	}

	public void setDvDevTesoreris(Set<DvDevTesoreri> dvDevTesoreris) {
		this.dvDevTesoreris = dvDevTesoreris;
	}

}
